using System;

using Atomic.Libraries.Mathematics.Functions;

namespace Atomic.Thermodynamics.StateEquations
{
	/// <summary>
	/// An equation of state specialization to an hexagonal unit cell with two lattice constants (a,c).
	/// The unit cell volume and the c/a ratio is used instead of (a,c) to keep this an extensive physical property
	/// as the general equation of state.
	/// </summary>
	public interface IHexagonalStateEquation : IStateEquation
	{
		double Energy(double volume, double ratio);

		double EnergyVolumeDerivative(double volume, double ratio);

		double EnergyRatioDerivative(double volume, double ratio);

		double EquilibriumRatio(double volume);
	}
}
